package mymyoux.io.mserveur.mcontactClasses.events
{
	import flash.events.Event;
	
	import mymyoux.io.mserveur.MRoom;
	import mymyoux.io.mserveur.mcontactClasses.People;
	import mymyoux.events.IStaticListenable;
	public class MRoomContactsEvent extends Event  implements IStaticListenable
	{
		
		/**
		 * Evenement envoyé lorsqu'un client se connecte (= avec un login) du salon.
		 */
		public static const PEOPLE_IN:String="people_in";
		/**
		 * Evenement envoyé lorsqu'un login se déconnecte du salon.
		 */
		public static const PEOPLE_OUT:String="people_out";
		/**
		 * @private
		 */
		protected var _room:MRoom;
		/**
		 * @private
		 */
		protected var _people:People;
		/**
		 * Crée un évènement de type MRoomContactsEvent.
		 * @param type Type de l'évènement.
		 * @param room Salon auquel est lié le MRoomContacts et donc l'évènement.
		 * @param people Client lié à l'évènement.
		 * @param bubbles Determines whether the Event object participates in the bubbling stage of the event flow. The default value is false.
		 * @param cancelable Determines whether the Event object can be canceled. The default values is false.
		 */
		public function MRoomContactsEvent(type:String,room:MRoom,people:People, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
			_people=people;
			_room=room;
		}
		/**
		 * Personne impliquée dans l'évènement
		 */
		public function get people():People
		{
			return _people;
		}
		/**
		 * Salonoù à eu lieu l'évènement
		 */
		public function get room():MRoom
		{
			return _room;
		}
		 /**
		 * @inheritDoc
		 */
		 public override function clone():Event
		 {
		 	return new MRoomContactsEvent(type,room,people,bubbles,cancelable);
		 }
		/**
		 * @copy mymyoux.core.IObject#toString()
		 */
		public override function toString():String
		{
			return "[MRoomContactsEvent room=\""+room.name+"\" type=\""+type+"\" idx=\""+_people.idx+"\" login=\""+_people.login+"\"]";
		}
		
	}
}